/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Expertos;

import Entidades.Distrito;
import Entidades.Domicilio;
import Entidades.Oficina;
import Persistencia.JPAControllerOficina;
import Persistencia.JpaController;
import java.util.Date;
import java.util.List;

/**
 *
 * @author diego
 */
public class ExpertoOficina {

    Domicilio domicilio = new Domicilio();
    Oficina o = new Oficina();
    Date fecha = new Date();

    public List<Oficina> buscarOficinas() {
        List<Oficina> listaoficinas;
        JPAControllerOficina jpap = new JPAControllerOficina();
        listaoficinas = jpap.buscarPorVigencia(true);
        return listaoficinas;
    }

    public void modificarOficina(Oficina o, String nombreOficina, int nroOficina, Distrito distrito, String barrio, String calle, String nroCalle, String piso, String dpto, Date fechaactual, Date fechabaja) {
        {
            Domicilio dom = o.getIdDomicilio();
            /////primero actualizo el domicilio y luego lo seteo a la oficina
            JpaController jpa = new JpaController();
            dom.setIdDistrito(distrito);
            dom.setBarrio(barrio);
            dom.setCalle(calle);
            dom.setNroCalle(nroCalle);
            dom.setNroDpto(dpto);
            dom.setPiso(piso);
            jpa.begin();
            jpa.edit(dom);
            jpa.commit();
            o.setNombreOficina(nombreOficina);
            o.setNumeroOficina(nroOficina);
            o.setIdDomicilio(dom);
            o.setFechaAltaOficina(fechaactual);
            o.setFechaBajaOficina(fechabaja);
            jpa.begin();
            jpa.edit(o);
            jpa.commit();
        }
    }

    public Oficina nuevaOficina(Domicilio dom, String nombreOficina, int nroOficina, Date fechaactual, Date fechabaja) {
        JpaController jpa = new JpaController();
        Oficina oficina = new Oficina();
        oficina.setIdDomicilio(dom);
        oficina.setNombreOficina(nombreOficina);
        oficina.setNumeroOficina(nroOficina);
        oficina.setFechaAltaOficina(fechaactual);
        oficina.setFechaBajaOficina(fechabaja);
        oficina.setVigente(true);
        jpa.begin();
        jpa.create(oficina);
        jpa.commit();
        return o;
    }

    public Domicilio nuevoDomicilio(Distrito distrito, String barrio, String calle, String nroCalle, String piso, String dpto) {
        JpaController jpa = new JpaController();
        domicilio.setIdDistrito(distrito);
        domicilio.setBarrio(barrio);
        domicilio.setCalle(calle);
        domicilio.setNroCalle(nroCalle);
        domicilio.setPiso(piso);
        domicilio.setNroDpto(dpto);
        jpa.begin();
        jpa.create(domicilio);
        jpa.commit();
        return domicilio;
    }

    public boolean buscarNumero(String numero) {
        List<Oficina> listaOficina;
        JPAControllerOficina jpap = new JPAControllerOficina();
        listaOficina = jpap.buscarPorNumero(numero);
        return listaOficina.isEmpty();
    }

    public List<Oficina> buscarNombre(String nombre) {
        List<Oficina> listaOficina;
        JPAControllerOficina jpap = new JPAControllerOficina();
        listaOficina = jpap.buscarPorNombre(nombre);
        return listaOficina;
    }

    public void eliminarOficina(Oficina o) {
        JpaController jpa = new JpaController();
        o.setVigente(false);
        o.setFechaBajaOficina(fecha);
        jpa.begin();
        jpa.edit(o);
        jpa.commit();
    }
}
